Corporations and other organization may employ large-scale software systems for different products and services. Certain components or modules for those products and services may be developed independently but have interdependencies. These software systems may contain millions or billions of lines of code. Various platforms can be used to run automated tests to ensure that the code satisfies certain criteria, such as being reliable enough to release commercially.
Testing in this manner may be run periodically, for instance at a milestone such as a certain point in time or at a particular stage of project development. When all tests are passed at the milestone, the organization can have confidence in the tested code. However, if one or more tests are not passed (the code is “broken”), it can be very time consuming and resource intensive to determine the source of the break. This is especially true if multiple changes to the code occurred between milestones, and if the number of interdependencies is large.